<?xml version="1.0"?>
<ScatterFile xmlns="http://schemas.microsoft.com/netmf/ScatterfileSchema.xsd">

    <!-- Freescale MC9328 No SRAM, SDRAM 32M/64M -->

    <Set Name="Valid" Value="false"/>

    <!-- ################################################################################ -->

    <If Name="TARGETLOCATION" Value="FLASH">
		<Set Name="LoadRam"         Value="0x1fff0000"/>
		<Set Name="Heap_Begin"      Value="+0"/>
		<Set Name="Heap_End"        Value="0x2000CFF8"/>
		<Set Name="Stack_Bottom"    Value="0x2000D000"/>
		<Set Name="Stack_Top"       Value="0x2000FFF8"/>
		
        <Set Name="Config_BaseAddress"  Value="0x0007C800"/>    
        <Set Name="Config_Size"         Value="0x00003800"/>
        <Set Name="Code_BaseAddress"    Value="0x00000000"/>
        <Set Name="Code_Size"           Value="0x0004B000"/>
        <Set Name="Valid"               Value="true"/>
		
    </If>

    <If Name="TARGETLOCATION" Value="RAM">
		<Set Name="LoadRam"         Value="0x20000000"/>
		<Set Name="Heap_Begin"      Value="0x20008000"/>
		<Set Name="Heap_End"        Value="0x20008FF8"/>
		<Set Name="Stack_Bottom"    Value="+0"/>
		<Set Name="Stack_Top"       Value="0x20009FF8"/>
		
        <Set Name="Code_BaseAddress" Value="0x1fff0000"/>
        <Set Name="Code_Size"        Value="0x00100000"/>
        <Set Name="Valid"            Value="true"/>

    </If>


    <!-- ################################################################################ -->

    <If Name="Valid" Value="false">
        <Error Message="Configuration not recognized"/>
    </If>
	
    <!-- we start at 0x10080000 since PortBooter lives at 0x10000000 -->
    <!-- the address and sizes for both load regions (LR_*) are chosen to start and completely fill a flash partition in the 28F320W18 flash chip -->

	
    <LoadRegion Name="LR_%TARGETLOCATION%" Base="%Code_BaseAddress%" Options="ABSOLUTE"  Size="%Code_Size%">
    	 <ExecRegion Name="ER_%TARGETLOCATION%" Base="+0" Size="" Options="FIXED">
			<FileMapping Name="BootVectors.obj" Options="(+RO, +FIRST)" /> <!-- for vector handlers to be far from the vectors --> 
			<FileMapping Name="ProtectionArea.obj" Options="(+RO)" /> <!-- for vector handlers to be far from the vectors --> 
			<FileMapping Name="FirstEntry.obj" Options="(+RO)" /> <!-- for vector handlers to be far from the vectors --> 
			<FileMapping Name="ramtest.obj" /> <!-- this must live somewhere other than RAM, for all but RAM builds -->            
			<FileMapping Name="*" Options="(SectionForBootstrapOperations)" />
            <FileMapping Name="*" Options="(+RO-CODE)" />
            <FileMapping Name="*" Options="(+RO-DATA)" />	
        </ExecRegion>	
		
        <ExecRegion Name="ER_RAM_RO" Base="%LoadRam%" Options="ABSOLUTE" Size="">            
             <FileMapping Name="VectorsTrampolines.obj" Options="(+RO, +FIRST)" /> <!-- for vector handlers to be far from the vectors -->            
			 <FileMapping Name="*" Options="(SectionForFlashOperations)" />
        </ExecRegion>

        <ExecRegion Name="ER_RAM_RW" Base="+0" Options="ABSOLUTE" Size="">
            <FileMapping Name="*" Options="(+RW-DATA, +ZI)" />
        </ExecRegion>

        <ExecRegion Name="ER_HEAP_BEGIN" Base="%Heap_Begin%" Options="ABSOLUTE" Size="UNINIT">
            <FileMapping Name="*" Options="(SectionForHeapBegin)" />
        </ExecRegion>

        <!-- everything between heapbegin and heapend will be allocated for a heap -->

        <ExecRegion Name="ER_HEAP_END" Base="%Heap_End%" Options="ABSOLUTE" Size="UNINIT">
            <FileMapping Name="*" Options="(SectionForHeapEnd)" />
        </ExecRegion>

        <!-- this must go last here to provide a low water mark on the stack -->

        <ExecRegion Name="ER_STACK_BOTTOM" Base="%Stack_Bottom%" Options="ABSOLUTE" Size="UNINIT">
            <FileMapping Name="*" Options="(SectionForStackBottom)" />
        </ExecRegion>
        
        <ExecRegion Name="ER_STACK_TOP" Base="%Stack_Top%" Options="ABSOLUTE" Size="UNINIT">
            <FileMapping Name="*" Options="(SectionForStackTop)" />
        </ExecRegion>		
    </LoadRegion>
	

    <IfDefined Name="Config_BaseAddress">

        <LoadRegion Name="LR_CONFIG" Base="%Config_BaseAddress%" Options="ABSOLUTE" Size="%Config_Size%">

            <ExecRegion Name="ER_CONFIG" Base="%Config_BaseAddress%" Options="FIXED" Size="%Config_Size%">

                <FileMapping Name="*" Options="(SectionForConfig)" />

            </ExecRegion>

        </LoadRegion>

    </IfDefined>

</ScatterFile>
